#pragma once

#include <semaphore.h>
#include <zookeeper/zookeeper.h>
#include <string>

// 封装的 zk 客户端类
class ZkClient
{
public:
    ZkClient();
    ~ZkClient();

    // zkclient 启动连接 zkserver
    void Start();

    // 在 zkserver 上根据指定的 path 创建 znode 节点
    void Create(const char* path, const char* data, int datalen, int state=0);

    // 根据参数指定的 znode 路径，获取 znode 节点的值
    std::string GetData(const char* path);

private:
    // zk 客户端的句柄
    zhandle_t* m_zhandle;
};